
public class Context {
    private int val_final;//valoarea finala a transformarii
    private int ultim_parcurs;//unitatea ultimului element parcurs
    private int suma_ultim;// de cate ori a aparut ultimul caracter in sirul de 
    //caractere de pana acum inmultita cu valoarea ultimei unitati
      public Context(){
        val_final=0;
        ultim_parcurs=0;
        suma_ultim=0;
    }    
    public int getValFinal(){
        return val_final;
    }
    public int getUltimParcurs(){
        return ultim_parcurs;
    }
    public int getSumaUltim(){
        return suma_ultim;
    }
    public void setValFinal(int v){
        val_final=v;
    }
    public void setUltimParcurs(int v){
        ultim_parcurs=v;
    }
    public void setSumaUltim(int v){
        suma_ultim=v;
    }
    public int returneazaFinal(){
        val_final+=suma_ultim;
        return val_final;
    }
    public void actualizeaza(int v){
        if(v<ultim_parcurs){
            val_final+=suma_ultim;
            suma_ultim=v;
            ultim_parcurs=v;
        }
        else if(v==ultim_parcurs){
            suma_ultim+=ultim_parcurs;
        }
        else if(v>ultim_parcurs){
            val_final-=suma_ultim;
            suma_ultim=v;
            ultim_parcurs=v;
        }
    }
    /*public Context()
    {
        this.val_final=0;
        this.suma_ultim=0;
        this.ultim_parcurs=0;
    }
    public int returneazaFinal()
    {
        this.val_final=this.val_final+this.suma_ultim;
        return this.suma_ultim;
    }
    public void actualizeaza(int v)
    {
        if(v<this.ultim_parcurs)
        {
            this.val_final=this.val_final+this.suma_ultim;
            this.suma_ultim=v;
            this.ultim_parcurs=v;
        }
        else
            if(v==this.ultim_parcurs)
            {
                this.suma_ultim=this.suma_ultim+this.ultim_parcurs;
            }
            else
                if(v>this.ultim_parcurs)
            {
             this.val_final=this.val_final-this.suma_ultim;
             this.suma_ultim=v;
             this.ultim_parcurs=v;
            }
    }
    public int getValFinal()
    {
        return this.val_final;
    }
    public void setValFinal(int v)
    {
        this.val_final=v;
    }
    public int getUltimParcurs()
    {
        return this.ultim_parcurs;
    }
    public void setUltimParcurs(int u)
    {
        this.ultim_parcurs=u;
    }
    public int getSumaUltim()
    {
        return this.suma_ultim;
    }
    public void setSumaUltim(int s)
    {
        this.suma_ultim=s;
    }*/
    

}
